package com.zkca.xf.net;


import com.zkca.xf.ConstantsXF;
import com.zkca.xf.Constants_SP;
import com.zkca.xf.MyApplication;
import com.zkca.xf.model.javabean.BaiDuRouteBean;
import com.zkca.xf.model.javabean.CheckDevice;
import com.zkca.xf.model.javabean.DeviceLBean;
import com.zkca.xf.model.javabean.DeviceType;
import com.zkca.xf.model.javabean.Devises_List;
import com.zkca.xf.model.javabean.DianLiu_Z;
import com.zkca.xf.model.javabean.FaultJobLBean;
import com.zkca.xf.model.javabean.FireAlarmBean;
import com.zkca.xf.model.javabean.FireControlBean;
import com.zkca.xf.model.javabean.JobLBean;
import com.zkca.xf.model.javabean.MesgLData;
import com.zkca.xf.model.javabean.NewsBeab;
import com.zkca.xf.model.javabean.SmokeBean;
import com.zkca.xf.model.javabean.SmsBean;
import com.zkca.xf.model.javabean.TaskLBean;
import com.zkca.xf.model.javabean.UserBean_W;
import com.zkca.xf.model.javabean.UserId;
import com.zkca.xf.model.javabean.Usermesager;
import com.zkca.xf.model.javabean.VideoiList;
import com.zkca.xf.model.javabean.Dianliu_F;
import com.zkca.xf.model.javabean.test.LoginDto;
import com.zkca.xf.model.javabean.test.Result;
import com.zkca.xf.model.javabean.upHead;
import com.zkca.xf.model.javabean.uploadbean.Dianliu_requ;
import com.zkca.xf.model.javabean.PasswordBean;
import com.zkca.xf.model.javabean.uploadbean.Mesg_UP;
import com.zkca.xf.model.javabean.uploadbean.RequestInspect;
import com.zkca.xf.model.javabean.uploadbean.RequestPage;
import com.zkca.xf.model.javabean.uploadbean.RequestSms;
import com.zkca.xf.model.javabean.uploadbean.RequestUser;
import com.zkca.xf.ui.activity.SplashActivity;
import com.zkca.xf.utils.SPUtil;

import java.util.List;
import java.util.Map;

import io.reactivex.Observable;
import okhttp3.MultipartBody;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.Query;
import retrofit2.http.QueryMap;
import retrofit2.http.Url;

/**
 * Created by li on 2018/7/30.
 */

public interface ApiManager {



    @GET(ConstantsXF.URL_Login)
    Observable<UserId> login(@QueryMap Map<String, String> map);



    @POST(ConstantsXF.URL_ElectricalHistory)
    Observable<Dianliu_F>getDianliu(@Body Dianliu_requ dianliu_requ);


    @POST(ConstantsXF.SELECT_SERVER)
    Observable<String>getSelectServer();


    @Multipart
    @POST(ConstantsXF.URL_etUserHead)
    Observable<upHead> upHead (@Part List<MultipartBody.Part> partList);


    @GET(ConstantsXF.URL_AddFaq)
    Observable<UserId> FeedBackHttp(@QueryMap Map<String, String> map);


    @GET(ConstantsXF.URL_UPdate)
    Observable<PasswordBean> ChangeQasswordHttp(@QueryMap Map<String, String> map);


    @POST(ConstantsXF.URL_hydrantlHistory)
    Observable<FireControlBean>get_Fire_Control(@Body Dianliu_requ dianliu_requ);


    @POST(ConstantsXF.URL_getFirmAlarm)
    Observable<FireAlarmBean>getFireAlarm(@QueryMap Map<String, String> map);

    @GET(ConstantsXF.URL_getFirmAlarmVideo)
    Observable<VideoiList> getVideoList(@QueryMap Map<String, String> map);

    @GET(ConstantsXF.URL_GETXIAOFANGZHAN)
    Observable<BaiDuRouteBean> getBaiDuRoute(@QueryMap Map<String, String> map);


    @GET(ConstantsXF.URL_getMicBuild)
    Observable<SmokeBean> getSmoke(@QueryMap Map<String, String> map);

    @GET(ConstantsXF.URL_IscunZai)
    Observable<CheckDevice>checkDevice(@QueryMap Map<String,String > map);


    @Multipart
    @POST(ConstantsXF.URL_ImageUpLoad_Li)
    Observable<Object> upImages (@Part List<MultipartBody.Part> partList);

    @GET(ConstantsXF.URL_DeviceAddT)
    Observable<String>upDevice(@QueryMap Map<String,String>map);


    @GET(ConstantsXF.URL_GETDEVICE)
    Observable<Devises_List>getDevicelist(@QueryMap Map<String,String> map);



    @POST(ConstantsXF.URL_SMS)//获取验证码
    Observable<SmsBean>get_sms(@Body RequestSms requestSms);

    @POST(ConstantsXF.URL_CODELOGIN)//登录
    Observable<UserBean_W>login_code(@Body RequestUser requestUser);

    @POST(ConstantsXF.URL_Electrical)//智慧用电动Z
    Observable<DianLiu_Z>get_DIAN_Control(@Body RequestPage dianliu_requ);


    @POST(ConstantsXF.URL_FireAlarm)//火灾报警
    Observable<String>get_FireAlarm(@Body RequestPage requestPage);

    @POST(ConstantsXF.URL_Smoke)//无线烟感
    Observable<String>get_Smoke(@Body RequestPage requestPage);

    @POST(ConstantsXF.URL_NBSmoke)//NB烟感
    Observable<String>get_NBSmoke(@Body RequestPage requestPage);

    @POST(ConstantsXF.URL_NBJG)//NB井盖
    Observable<String>get_NBJingGai(@Body RequestPage requestPage);


    @POST(ConstantsXF.URL_ZHMJ)//智慧门禁
    Observable<String>get_ZHMJ(@Body RequestPage requestPage);



    @POST(ConstantsXF.URL_RLSB)//人脸识别
    Observable<String>get_RLSB(@Body RequestPage requestPage);



    //URL_DHTC
    @POST(ConstantsXF.URL_DHTC)//无线烟感
    Observable<String>get_DianHu(@Body RequestPage requestPage);

    @POST(ConstantsXF.URL_XFSS)//室内消防水
    Observable<String>get_Shui(@Body RequestPage requestPage);


    @POST(ConstantsXF.URL_HYDRANT)//室外消防栓
    Observable<String>get_Shuuan(@Body RequestPage requestPage);


    @POST(ConstantsXF.URL_ElectricalF)//智慧用电F
    Observable<String>getElectricalF(@Body RequestPage requestPage);


    @POST(ConstantsXF.URL_ElectricalG)//智慧用电G
    Observable<String>getElectricalG(@Body RequestPage requestPage);

    //URL_VIDEO
    @POST(ConstantsXF.URL_VIDEO)//视频
    Observable<String>getVideo(@Body RequestPage requestPage);


    @POST(ConstantsXF.URL_DEVTYPE)//获取设备类型
    Observable<DeviceType>getDvType(@Body RequestInspect requestPage);

    @POST(ConstantsXF.URL_INPUT)//设备添加
    Observable<String>inPut(@Body RequestInspect requestPage);


    @POST(ConstantsXF.URL_DATA)//获取设备列表
    Observable<DeviceLBean>getDevList(@Body RequestInspect requestPage);

    //URL_TASK  获取任务列表
    @POST(ConstantsXF.URL_TASK)//获取任务列表
    Observable<TaskLBean>getTaskList(@Body RequestInspect requestPage);


    //URL_TASK  获取任务作业列表
    @POST(ConstantsXF.URL_JOBLIST)
    Observable<JobLBean>getJobList(@Body RequestInspect requestPage);

    //URL_TASK  提交单条作业
    @POST(ConstantsXF.URL_JOBSUBMIT)
    Observable<JobLBean>jobSubmit(@Body RequestInspect requestPage);


    @POST(ConstantsXF.URL_FAULT)//获取故障任务列表
    Observable<FaultJobLBean>FaultL(@Body RequestInspect requestPage);


    @POST(ConstantsXF.URL_FAULTUP)//提交故障
    Observable<JobLBean>FaultSubmit(@Body RequestInspect requestPage);


    @POST(ConstantsXF.URL_MEGGET)//获取上传下达消息
    Observable<MesgLData>MesgGet(@Body Mesg_UP requestPage);

    @POST(ConstantsXF.URL_MEGREPLY)//获取上传下达消息
    Observable<MesgLData>MesgReply(@Body Mesg_UP requestPage);


    @POST(ConstantsXF.LOGIN_WU)//获取上传下达消息
    Observable<Result>Log_Wu(@Body LoginDto requestPage);

    @POST(ConstantsXF.URL_LOGOUT)//退出登录
    Observable<UserBean_W>logout(@Body RequestUser requestUser);


    @POST(ConstantsXF.URL_getNewsList)
    Observable<String> news(@Body RequestPage map);

}
